package com.hyl.service;

import com.hyl.dao.SysUserDao;
import com.hyl.entity.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @Description TODO
 * @Author com.hyl
 * @Date 2022/9/27 11:15
 **/
@Service("userService")
public class UserServiceImpl implements UserService {

	/*
	* @Autowired:
	*   1、由Spring提供
	*   2、按类型自动匹配
	*   3、当匹配的类型有多个时，那么会按名称@Qualifier注解中定义的名称自动注入
	*   4、默认必须由Spring注入bean，如果不需要直接注入，则配置 @Autowired(required = false)
	*
	* @Resource:
	*   1、Java标准注解
	*   2、默认按名称自动匹配
	*   3、当匹配的名称不存在时，则会按类型进行注入
	*   4、如果不想使用默认的名称，可以进行配置 @Resource(name = "userDao")
	* */

	@Autowired
	private SysUserDao sysUserDao;

	@Override
	public List<SysUser> findByMap(Map<String, Object> params) {
		return sysUserDao.findByMap(params);
	}

	@Override
	public List<SysUser> findByParam(String name, String roleId, Integer offset) {
		return sysUserDao.findByParam(name, roleId, offset);
	}

	@Override
	public SysUser findById(Integer id) {
		return sysUserDao.findById(id);
	}

//	@Autowired //按类型自动匹配:定义的是一个接口，那么可能会出现多个实现类,如果不指定由哪一个实现类进行注入，则报错
	//@Qualifier("sysUserDao1")  //当匹配的类型有多个时，那么会按名称自动注入【bean的名称与属性名相同】
//	private SysUserDao sysUserDao;

//	@Resource(name = "userDao")
//	private SysUserDao sysUserDao;
//
//	@Autowired(required = false)
//	private SysUser sysUser;

}
